<?php
// 传入的表单name = pic
// 上传参数：允许文件大小
// 传入定义的type 上传的文件类型
$type1 = array('text/plain', 'image/jpeg', 'image/png', 'image/jpg');
$result = upload('pic', $type1);
// var_dump($result);
function upload($pic, array $type = array('image/jpeg', 'image/png', 'image/jpg'), $size = 1000000)
{
    $file = $_FILES[$pic];
    if ($file['error'] > 0) {
        switch ($file['error']) {
            case 1:
                return '上传文件超过了配置文件中upload_max_filesize的值';
            case 2:
                return '上传文件超过了html设置的MAX_FILS_SIZE';
            case 3:
                return '只有部分文件上传';
            case 4:
                return '没有文件上传';
            case 6:
                return '找不到临时文件夹';
            case 7:
                return '文件写入失败';
        }
    }
    // 判断上传文件是否是允许的类型
    if (!in_array($file['type'], $type)) {
        return '上传文件类型不合法';
    }
    // 上传文件大小是否
    // 定义允许上传的大小
    if ($file['size'] > $size) {
        return '你上传的文件过大啦';
    }
    // 创建上传成功后保存的目录，不存在则创建
    $path = '../book';
    if (!file_exists($path)) {
        mkdir($path);
    }
    // 上传的文件不能重名，要重新命名
    // 获取图片上传的后缀，找到.最后出现的字符
    $suffix = strrchr($file['name'], '.');
    // echo $suffix;
    // 移动文件（从temp中移动到指定目录并将图片重命名）拼接名字
    do {
        $newname = md5(time() . mt_rand(1, 1000) . uniqid()) . $suffix;
    } while (file_exists($path . '/' . $newname));

    // 定义一个返回的数组
    $info = array();

    if (move_uploaded_file($file['tmp_name'], $path . '/' . $newname)) {
        // echo '上传文件成功';
        $info['name'] = $newname;
        $info['path'] = $path;
        $info['pathName'] = $path . '/' . $newname;
        // return $info;
        $url = '../show.html';
        echo "<script>alert('成功上传!文件已经存放于book文件夹下');</script>";
        echo "<script>location.href='$url'</script>";
    } else {
        $url = '../show.html';
        echo "<script>alert('上传失败');</script>";
        echo "<script>location.href='$url'</script>";
        // echo '未知错误';
    }
}
